//#include <Encoder.h>
#include <MyEncoder.h>

#define _LEFT_ENCODER_PIN_    2
#define _RIGHT_ENCODER_PIN_   3
//Encoder leftEncoder(19,18);
//Encoder rightEncoder(20,21);
// 2018年7月21日前购买的版本

MyEncoder leftEncoder(_LEFT_ENCODER_PIN_);
MyEncoder rightEncoder(_RIGHT_ENCODER_PIN_);

// 2018年7月21日后购买的版本,编码器引脚交换了位置,故使用此定义



long leftPosition;
long rightPosition;


long readEncoder(int i)
{
  if (i==LEFT)
  {
   
    return leftEncoder.read()-leftPosition;
  }
  else
  {
     return rightEncoder.read()-rightPosition;
  } 
}
void resetEncoder(int i)
{
  if (i==LEFT)
  {
    leftPosition=leftEncoder.read();
    
  }else
  {
    rightPosition=rightEncoder.read();
  }
}
void resetEncoders()
{  
  resetEncoder(LEFT);
  resetEncoder(RIGHT);
}
/**
 * 
 */
void setDir(int i, uint8_t dir)
{
  if(i == LEFT) leftEncoder.set_dir(dir);
  else rightEncoder.set_dir(dir);  
}
/**
 * 
 */
void setDirs(uint8_t left_dir, uint8_t right_dir)
{
  setDir(LEFT, left_dir);
  setDir(RIGHT, right_dir);
}
